package com.taxshare.seller.view.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;

@Data
public class SellerInvoiceRVO {

    @ApiModelProperty("主键")
    private String uuid;

    @ApiModelProperty("发票请求流水号")
    private String serialNo;

    @ApiModelProperty("发票类型（004 专票 007 普票  026 电子发票 41卷票）")
    private String invoiceType;

    @ApiModelProperty("开票类型（0 蓝票  1红票）")
    private String makeInvoiceType;

    @ApiModelProperty("开票appid(盘开)")
    private String appid;

    @ApiModelProperty("电票appSecret")
    private String appSecret;

    @ApiModelProperty("发票代码")
    private String invoiceCode;

    @ApiModelProperty("发票号码")
    private String invoiceNo;

    @ApiModelProperty("开票日期")
    private String invoiceDate;

    @ApiModelProperty("二维码")
    private String qrCode;

    @ApiModelProperty("密文")
    private String cipherText;

    @ApiModelProperty("盘编号")
    private String panNo;

    @ApiModelProperty("购方名称")
    private String purchaserName;

    @ApiModelProperty("购方税号")
    private String purchaserTaxNo;

    @ApiModelProperty("购方地址电话")
    private String purchaserAddressTel;

    @ApiModelProperty("购方银行账号")
    private String purchaserBankAccount;

    @ApiModelProperty("购方代码")
    private String purchaserCode;

    @ApiModelProperty("销方名称")
    private String sellerName;

    @ApiModelProperty("销方税号")
    private String sellerTaxNo;

    @ApiModelProperty("销方地址电话")
    private String sellerAddressTel;

    @ApiModelProperty("销方银行账号")
    private String sellerBankAccount;

    @ApiModelProperty("销方代码")
    private String sellerCode;

    @ApiModelProperty("合计金额")
    private String totalSum;

    @ApiModelProperty("合计税额")
    private String totalTax;

    @ApiModelProperty("价税合计")
    private String totalSumTax;

    @ApiModelProperty("折扣金额")
    private String discountSum;

    @ApiModelProperty("折扣税额")
    private String discountTax;

    @ApiModelProperty("折扣价税合计")
    private String discountSumTax;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("收款人")
    private String payee;

    @ApiModelProperty("复核人")
    private String reviewer;

    @ApiModelProperty("开票人")
    private String drawer;

    @ApiModelProperty("发票状态（0 正常  1作废 2 红冲）")
    private String invoiceState;

    @ApiModelProperty("开票状态（0 待开 1发送开票 2已开 3 开票失败）")
    private String makeInvoiceState;

    @ApiModelProperty("打印状态（0 未打印 1已打印）")
    private String printState;

    @ApiModelProperty("数据来源（0 api 1 excel导入(结算单开票 ) 2 手工录入 3 发票同步 4业务单开票）")
    private String dataSource;

    @ApiModelProperty("原发票代码")
    private String oldInvoiceCode;

    @ApiModelProperty("原发票号码")
    private String oldInvoiceNo;

    @ApiModelProperty("红字申请编号")
    private String redInfoNo;

    @ApiModelProperty("开票记录号")
    private String invoiceRecordNo;

    @ApiModelProperty("开票方式（0 金税盘 1税控盘 2税神通 3电子发票平台 4简易税控盘 5-A9）")
    private String makeInvoiceMode;

    @ApiModelProperty("结算单编号")
    private String orderNo;

    @ApiModelProperty("结算单时间")
    private String orderTime;

    @ApiModelProperty("校验码")
    private String checkCode;

    @ApiModelProperty("手机号")
    private String phone;

    @ApiModelProperty("邮箱")
    private String mailBox;

    @ApiModelProperty("发票下载地址")
    private String invoiceUrl;

    @ApiModelProperty("税率")
    private String taxRate;

    @ApiModelProperty("发票日期月份：如:2019-01")
    private String invoiceMonth;

    @ApiModelProperty("发票日期天：如：2019-01-01")
    private String invoiceDay;

    @ApiModelProperty("失败原因")
    private String failReason;

    @ApiModelProperty("用于查询发票结果的sid")
    private String nowSid;

    private List<SellerInvoiceDetailRVO> invoiceDetail;

    private String capitalTotalSumTax;

    @ApiModelProperty("商品编码简称标志")
    private String spbmjcbz;

    private String fplx;

    @ApiModelProperty("明源单据ID")
    private String docId;

    @ApiModelProperty("销方申请原因")
    private String sellerApplyReason;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private String createUserid;

    private String updateUserid;

    private String tenantId;
}